ElasticSearch 命令执行漏洞(CVE-2014-3120)
jre版本:openjdk:8-jre
elasticsearch版本:v1.1.1
相关文档:http://bouk.co/blog/elasticsearch-rce/ 、 https://www.t00ls.net/viewthread.php?tid=29408
老版本ElasticSearch支持传入动态脚本(MVEL)来执行一些复杂的操作,而MVEL可执行Java代码,而且没有沙盒,所以我们可以直接执行任意代码。
MVEL执行命令的代码如下:
1 | import java.io.*; |
漏洞复现
将Java代码放入json中:
1 | { |
首先,该漏洞需要es中至少存在一条数据,所以我们需要先创建一条数据:
1 | POST /website/blog/ HTTP/1.1 |
然后,执行任意代码:
1 | POST /_search?pretty HTTP/1.1 |
结果如图: